import os

file_size = [0]  # 列表，用于记录文件大小


def package_size(dir_r):
    '''
    读取目录
    并返回目录大小
    '''
    global pck_size
    # os.chdir(dir_r)  # 修改当前工作目录
    d_list = os.listdir(dir_r)  # 获取目录内文件列表
    # 遍历所有文件，并获取文件大小
    for i in d_list:
        file_r = os.path.join(dir_r, i)  # 合并路径
        # 判定当前目标是否为文件
        if os.path.isfile(file_r):
            print(file_r)  # 输出文件目录
            file_size[0] += os.path.getsize(file_r)  # 计算文件大小
        # 判断是否是目录
        if os.path.isdir(file_r):
            print("开始累计此文件夹下文件大小：")
            # print(file_r)  # 输出子文件夹路径
            package_size(file_r)  # 计算文件夹大小
    return file_size[0], file_r


pck = input("请输入文件目录名称：")

# 判断输入文件目录是否存在
while not os.path.exists(pck):
    print("文件目录不存在，请重新输入：", end="")
    pck = input()

pck_where = os.getcwd()
print("当前工作目录：", pck_where)

print("计算完毕，文件大小为{}字节。".format(package_size(pck)[0]))
